package Testdmo5;

import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Stack;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:周次煜
 * Date: 2024-04-02
 * Time：18:46
 */
public class J4_2 {
}

class MyQueue {

    Stack<Integer> st1;
    Stack<Integer> st2;
    public MyQueue() {
        st1=new Stack<>();
        st2=new Stack<>();
    }

    public void push(int x) {
        if(empty()) {
            st1.push(x);
            return;
        }

        if(st1.isEmpty()) {
            st2.push(x);

        } else {
            st1.push(x);
        }

    }

    public int pop() {
        if(st1.isEmpty()) {
            int sz=st2.size();
            int str=-1;
            for(int i=0 ; i<sz; i++) {
                str=st2.pop();
                st1.push(str);
            }
             str=st1.pop();
            sz=st1.size();
            for(int i=0 ; i<sz; i++) {
                st2.push(st1.pop());
            }
            return str;
        } else {
            int sz=st1.size();
            int str=-1;
            for(int i=0 ; i<sz; i++) {
                str=st1.pop();
                st2.push(str);
            }
            str=st2.pop();
            sz=st2.size();
            for(int i=0 ; i<sz; i++) {
                st1.push(st2.pop());
            }
            return str;
        }
    }

    public int peek() {
        if(st1.isEmpty()) {
          int sz=st2.size();
          int str=-1;
          for(int i=0 ; i<sz; i++) {
                str=st2.pop();
                st1.push(str);
            }
            for(int i=0 ; i<sz; i++) {
                st2.push(st1.pop());
            }
            return str;
        } else {
            int sz=st1.size();
            int str=-1;
            for(int i=0 ; i<sz; i++) {
                str=st1.pop();
                st2.push(str);
            }
            for(int i=0 ; i<sz; i++) {
                st1.push(st2.pop());
            }
            return str;
        }
    }

    public boolean empty() {
        return st1.isEmpty() && st2.isEmpty();
    }

    public static void main(String[] args) {
        MyQueue mq=new MyQueue();
        mq.push(1);
        mq.push(2);
        mq.push(3);
        mq.push(4);
        mq.push(5);
        System.out.println(mq.pop());
        System.out.println(mq.pop());
        System.out.println(mq.pop());
        System.out.println(mq.pop());
        System.out.println(mq.pop());
        System.out.println(mq.empty());
    }
}


//class MyQueue {
//
//    Stack<Integer> st1;
//    Stack<Integer> st2;
//    public MyQueue() {
//        st1=new Stack<>();
//        st2=new Stack<>();
//    }
//
//    public void push(int x) {
//
//
//        if(st1.isEmpty()) {
//            st1.push(x);
//            st2.push(st1.pop());
//        } else {
//            st2.push(x);
//            st1.push(st2.pop());
//        }
//
//    }
//
//    public int pop() {
//        if(empty()) return -1;
//        if(st1.isEmpty()) {
//            return st2.pop();
//        } else {
//            return st1.pop();
//        }
//    }
//
//    public int peek() {
//        if(empty()) return -1;
//        if(st1.isEmpty()) {
//            return st2.peek();
//        } else {
//            return st1.peek();
//        }
//    }
//
//    public boolean empty() {
//        return st1.isEmpty() && st2.isEmpty();
//    }
//
//
//        public static void main(String[] args) {
//        MyQueue mq=new MyQueue();
//        mq.push(1);
//        mq.push(2);
//        System.out.println(mq.peek());
//        System.out.println(mq.pop());
//        System.out.println(mq.empty());
//    }
//}